#ifndef GLSCENE_H_
#define GLSCENE_H_

#include <vector>
#include <map>

#include "GameState.h"
#include "SDLCanvas.h"
#include "GLTextures.h"
#include "GameMap.h"
#include "Timer.h"
#include "SiteCoordinate.h"
#include "PathCoordinate.h"

namespace catan
{

class GLScene
{
public:
	GLScene(GameState &gameState, SDLCanvas &sdlCanvas, GLTextures &glTextures, GameMap &gameMap);
	virtual ~GLScene();
	void poll();
	void draw();
	void click(int x, int y);

private:
	void queryAddRoad();
	void queryAddSettlement();
	GameState *gameStateRef;
	SDLCanvas *sdlCanvasRef;
	GLTextures *glTexturesRef;
	GameMap *gameMapRef;
	int frame;
	Timer timer;
	std::vector<SiteCoordinate> settlements;
	std::map<SiteCoordinate, int> settlementColors;
	std::vector<PathCoordinate> roads;
	std::map<PathCoordinate, int> roadColors;
};

}

#endif /*GLSCENE_H_*/
